package cn.xzqwjw.taskmanager.domain.pojo;

import cn.xzqwjw.taskmanager.common.validator.ValidGroupUpdate;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serializable;
import java.time.LocalDateTime;

import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 任务责任分工表
 *
 * @author wjw
 */
@TableName(value = "t_task_duty")
@EqualsAndHashCode(callSuper = true)
@Data
public class TaskDuty extends Model<TaskDuty> implements Serializable {

  @TableField(exist = false)
  private static final long serialVersionUID = 1L;

  @Override
  public Serializable pkVal() {
    return this.id;
  }

  /**
   * 自动编号
   */
  @TableId(type = IdType.AUTO)
  @NotNull(message = "id不能为空", groups = ValidGroupUpdate.class)
  private Integer id;

  /**
   * 所属任务id
   */
  @NotNull(message = "所属任务id不能为空")
  private Integer idTask;

  /**
   * 所属单位
   */
  private Integer idUnit;

  /**
   * 所属科室
   */
  private Integer idDepartment;

  /**
   * 管理员id
   */
  private Integer idAdmin;

  /**
   * 责任类型：领导责任 Leader,工作人员 Staff,督查 Checker
   */
  @NotBlank(message = "责任类型不能为空！")
  @Length(min = 1, max = 10, message = "责任类型长度应为1到10")
  private String dutyType;

  /**
   * 创建日期
   */
  private LocalDateTime dtCreate;

}